perm filename PUP0B.PAL[11,HE] blob sn#656315 filedate 1982-04-29 generic text, type T, neo UTF8
; Copyright Xerox Corporation 1979

.TITLE PUP0B 
; PUP0B -- ROUTINES FOR INTERFACING TO ETHERNET HARDWARE

.CSECT GLOBAL
G=.

.CSECT

; ENTRY POINT TO INITPDPETHER
LA1:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	CLR -6.(0)
	MOV #000032,%2
	MOV -2.(0),%1
	JSR %7,@G+256.
	000010
	MOV %1,-8.(0)
	JSR %7,@G+294.
	000012
	MOV %1,-10.(0)
	MOV #000032,%2
	MOV -8.(0),%1
	JSR %7,@G+202.
	000014
	MOV -8.(0),%1
	ASL %1
	MOV -10.(0),4.(1)
	MOV -8.(0),%1
	ASL %1
	MOV G+282.,20.(1)
	MOV -8.(0),%1
	ASL %1
	MOV G+284.,22.(1)
	MOV -8.(0),%1
	ASL %1
	CLR 6.(1)
	MOV -8.(0),%1
	ASL %1
	MOV G+288.,16.(1)
	MOV -8.(0),%1
	ASL %1
	MOV G+384.,18.(1)
	MOV -8.(0),%1
	ADD #000005,%1
	MOV -8.(0),%2
	ADD #000007,%2
	JSR %7,@G+230.
	000014
	MOV -8.(0),%2
	MOV G+380.,%1
	JSR %7,@G+230.
	000014
	MOV #000024,%2
	MOV -2.(0),%1
	JSR %7,@G+256.
	000020
	MOV #000001,%4
	MOV G+286.,%3
	MOV #000024,%2
	JSR %7,@G+250.
	000014
	MOV %1,-6.(0)
	MOV -6.(0),%1
	ASL %1
	MOV -8.(0),6.(1)
	MOV -6.(0),%2
	MOV -4.(0),%1
	JSR %7,@G+230.
	000014
	MOV -8.(0),%1
	JSR %7,@G+290.
	000014
	MOV (0)+,%5
	BR	LA999
LA5:
	JMP MA5
LA999:
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO ENCAPSULATEETHERPUP
LA2:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV -4.(0),%1
	SWAB %1
	CLRB %1
	MOV -2.(0),%2
	ASL %2
	MOV 6.(2),%2
	ASL %2
	ADD 4.(2),%1
	MOV #000007,%2
	ADD -2.(0),%2
	ASL %2
	MOV %1,(2)
	MOV #000007,%1
	INC %1
	ADD -2.(0),%1
	ASL %1
	MOV #001000,(1)
	MOV -2.(0),%1
	ASL %1
	MOV 18.(1),%1
	ADD #000005,%1
	CLC 
	ROR %1
	MOV -2.(0),%2
	ASL %2
	MOV %1,12.(2)
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO SENDETHERPACKET
LA3:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),-4.(0)
	MOV -4.(0),%1
	ADD #000030,%1
	MOV -2.(0),%2
	JSR %7,@G+230.
	000006
	MOV -4.(0),%1
	ASL %1
	TST 46.(1)
	BNE LA6
	MOV -4.(0),%1
	JSR %7,@G+292.
	000006
LA6:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO FEEDETHER
LA4:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
LA7:
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),-4.(0)
	MOV -4.(0),%1
	ASL %1
	TST 32.(1)
	BNE LA8
	MOV G+382.,%1
	ASL %1
	TST (1)
	BEQ LA8
	MOV -4.(0),%1
	JSR %7,@G+290.
	000006
LA8:
	MOV -4.(0),%1
	ASL %1
	TST 46.(1)
	BEQ LA9
	MOV -4.(0),%1
	ADD #000026,%1
	JSR %7,@G+246.
	000006
	TST %1
	BEQ LA9
	MOV #160024,-6.(0)
	MOV -6.(0),%1
	ASL %1
	CLR (1)
	MOV -4.(0),%1
	ASL %1
	TST 46.(1)
	BEQ LA10
	MOV -4.(0),%1
	ASL %1
	MOV 46.(1),%1
	ASL %1
	MOV -4.(0),%2
	ASL %2
	MOV 46.(2),%2
	MOV 2.(1),%1
	JSR %7,@G+230.
	000010
LA10:
	MOV -4.(0),%1
	ASL %1
	CLR 46.(1)
	MOV -4.(0),%1
	ASL %1
	CLR 42.(1)
	MOV -4.(0),%1
	JSR %7,@G+292.
	000010
LA9:
	JSR %7,@G+254.
	000006
	BR LA7

MA5:

.CSECT GLOBAL

	.=G+280.
	LA1
	.=G+282.
	LA2
	.=G+284.
	LA3
	.=G+286.
	LA4

.CSECT



.END